using System;
using System.Collections.Generic;
using System.Text;

namespace OnlinePlots.Plots.Scales
{
    /// <summary>
    /// Represents an abstract real-value scale
    /// </summary>
    public abstract class Scale
    {
        /// <summary>
        /// Returns the scaled values by an unscaled value
        /// </summary>
        /// <param name="initialValue">Unscaled value</param>
        /// <returns>Scaled value</returns>
        public abstract double GetScaledValue(double initialValue);

        /// <summary>
        /// Returns the unscaled value by a given scaled value
        /// </summary>
        /// <param name="scaledValue">Scaled value</param>
        /// <returns>Unscaled value</returns>
        public abstract double GetUnscaledValue(double scaledValue);
    }
}
